import Vue from 'vue'
// import Vuex from 'vuex'
import Vuex from '@/vuex'
import moduleA from './module/module-a';
import moduleB from './module/module-b';

// import Vuex from 'vuex'
// 需要先实现一个 Vuex ，将用户注入的store变成每个组件的$store
// 实现state，getters，actions，mutations
// console.log(Vuex);

Vue.use(Vuex)

const store = new Vuex.Store({
  strict: true,// 严格模式
  state: { // 共享状态
    age: 18
  },
  getters: { // 计算属性，可以更具状态计算出一个新的状态 computed
    getAge(status) { // 学校的年龄
      return status.age - 5;
    }
  },
  mutations: { // 同步更改 ，mutation是唯一更改状态的方式(严格模式)
    changeAge(state, payload) {
      state.age = payload;
    }
  },
  actions: {
    changeAge({ commit }, payload) {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          commit('changeAge', payload)
          resolve(payload);
        }, 1000);
      })
    }
  },
  modules: {
    a:moduleA,
    b:moduleB
  }
})

// store.commit('changeAge',10)

export default store;